/**
 * 监控系统路由模块（需要认证）
 * 仅包含需要认证的监控相关路由
 */

const monitorController = require('../controllers/monitorController');
const cacheController = require('../controllers/cacheController');
const { authenticateToken } = require('../middlewares/authMiddleware');
const express = require('express');

const router = express.Router();

// 所有路由都需要认证Token
router.use(authenticateToken)

// 获取监控数据列表
router.get('/data', monitorController.getMonitorDataList);


// 获取错误统计数据
router.get('/stats/error', monitorController.getErrorStats);

// 获取性能统计数据
router.get('/stats/performance', monitorController.getPerformanceStats);

// 获取用户行为统计数据
router.get('/stats/behavior', monitorController.getBehaviorStats);


// 获取会话列表
router.get('/sessions', monitorController.getSessionList);

// 获取会话详情
router.get('/sessions/:sessionId', monitorController.getSessionDetail);

// 获取操作回溯数据
router.get('/playback', monitorController.getPlaybackData);

// 清理过期监控数据
router.post('/cleanup', monitorController.cleanExpiredData);

// 缓存管理相关路由
// 获取缓存列表信息
router.get('/cache', cacheController.getCacheList);

// 删除指定缓存
router.delete('/cache/:key', cacheController.deleteCache);

// 批量删除缓存
router.delete('/cache/batch', cacheController.batchDeleteCache);

// 根据模式清除缓存
router.delete('/cache/pattern/:pattern', cacheController.clearByPattern);

// 获取缓存统计信息
router.get('/cache/stats', cacheController.getCacheStats);

// 重置缓存统计信息
router.post('/cache/stats/reset', cacheController.resetCacheStats);

module.exports = router;
